package mem

// KB 内存单位
const KB = 1024

// MB 内存单位
const MB = 1024 * KB

type Memory struct {
	memAmt int
	raw    []uint32
}

func New(memAmt int) *Memory {
	return new(Memory).Init(memAmt)
}

func (m *Memory) Init(memAmt int) *Memory {
	m.memAmt = memAmt
	m.raw = make([]uint32, memAmt*MB>>2)
	return m
}

func (m *Memory) GetMemAmt() int {
	return m.memAmt
}

func (m *Memory) Write(address uint32, val uint32) {
	m.raw[address] = val
}

func (m *Memory) Read(address uint32) uint32 {
	return m.raw[address]
}
